/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Tables;

/**
 *
 * @author rehgon
 */
import java.sql.*;
import java.util.ArrayList;

public class Maschinen {
    
    public static void insertMaschine(Connection conn, String bezeichnung, int wartungsintervall, int wirdGewartetVon) {
        try {
            Statement stmt = conn.createStatement();
            stmt.executeUpdate( "insert into Maschinen(bezeichnung, wartungsintervall, wirdGewartetVOn) "
                    + "values('" + bezeichnung + "'," + wartungsintervall + "," + wirdGewartetVon + ")"
            );
            System.out.println( "Die Maschine mit den Angaben: " + bezeichnung + " | " + wartungsintervall + " | " + wirdGewartetVon + " wurde erstellt" );
        } catch (SQLException ex){
            System.out.println(ex.getMessage());
        }
    }
    
    public static void selectAllMaschinen(Connection conn) {
        try {
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery( "select ma.*, mi.name as miName from Maschinen ma "
                    + "inner join Mitarbeiter mi on mi.mitarbeiterId = ma.wirdGewartetVon" );
            while(rs.next()) {
                System.out.println("eintrag:");
                System.out.println(rs.getString("bezeichnung") + " | " + rs.getInt("wartungsintervall") + " | " + rs.getString("miName") );
            }
            stmt.close();
        } catch(SQLException ex) {
            ex.getMessage();
        }
    }
    
    //Gibt es eine freie Maschine welche das Teil produzieren kann und an diesem Tag frei ist
    public static ResultSet checkIfMachineFree(Connection conn, int teilNr, String datum) {
        ResultSet rs = null;
        try {
            Statement stmt = conn.createStatement();
            rs = stmt.executeQuery(
                  " select Maschinen.bezeichnung from Maschinen"
                + " where Maschinen.bezeichnung not in"
                + " ("
                + "     select distinct idMaschine from Fertigungsschritt"
                + "     where Fertigungsschritt.datum = '" + datum + " 00:00:00.000'"
                + " )"
                + " and Maschinen.bezeichnung in"
                + " ("
                + "     select Teile.wirdProduziertVon from Teile"
                + "     inner join Maschinen"
                + "     on Teile.wirdProduziertVon = Maschinen.bezeichnung"
                + "     where Teile.teilNr = " + teilNr
                + " )"
            );
        } catch(SQLException ex) {
            System.out.println(ex.getMessage());
        } finally {
            return rs;
        }
    }
}
